//
//  BSFingerSDK.h
//  BSFingerSDK
//
//  iOS SDK Version:4.1.1

#import <Foundation/Foundation.h>

typedef enum : NSUInteger {
    BSCustomCollectTypeNormal = 0,
    BSCustomCollectTypeContacts,//采集通讯录信息
} BSCustomCollectType;

@interface FRMS : NSObject


/**
 自定义采集数据类型
 */
@property(nonatomic, assign) BSCustomCollectType customType;

/**
 设备指纹生成类的单例
 @return BSFingerSDK单例对象
 */
+ (instancetype)sharedInstance;

/**
 参数配置接口
 @param url 设备指纹生成服务地址
 @param count 失败尝试次数
 @param custID  商户自定义的custID
 @param waitSeconds 失败关闭接口时间(单位：秒)
 */
- (void)loadUrl:(NSString *)url
   andFailCount:(int)count
 andWaitSeconds:(long)waitSeconds
      andCustID:(NSString *)custID;
/**
 自定义请求结构
 */
- (void)setTranscoder:(NSDictionary *)transcodeHeader andBody:(NSDictionary *)transcodeBody;

/**
 获取设备指纹（不等待获取设备指纹）
 @return 设备指纹,错误信息
 */
- (NSDictionary *)getFingerprint;

/**
 获取设备指纹
 @param enableForce 是否强制请求不启用缓存
 @return 设备指纹,网络状态码,错误信息
 */
- (NSDictionary *)getFingerprint:(BOOL)enableForce;

/**
 获取设备指纹
 @param timeoutInterval 接口超时时间
 @param enableForce 是否强制请求不启用缓存
 @return 设备指纹,网络状态码,错误信息
 */
- (NSDictionary *)getFingerprint:(NSTimeInterval)timeoutInterval
                       withForce:(BOOL)enableForce;

/**
 重置设备指纹
 */
- (void)reset;

/**
 关闭设备指纹
 */
- (void)shutdown;

@end
